Tabular Data Stream
   HOME

TheInfoList



OR:

Tabular Data Stream (TDS) is an
application layer An application layer is an abstraction layer that specifies the shared communications protocols and Interface (computing), interface methods used by Host (network), hosts in a communications network. An ''application layer'' abstraction is speci ...
protocol Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technology ...
used to transfer data between a
database server A database server is a server which uses a database application that provides database services to other computer programs or to computers, as defined by the client–server model. Database management systems (DBMSs) frequently provide database- ...
and a client. It was initially designed and developed by
Sybase Sybase, Inc. was an enterprise software and services company. The company produced software to manage and analyze information in relational databases, with facilities located in California and Massachusetts. Sybase was acquired by SAP in 2010; ...
Inc. for their
Sybase SQL Server SAP ASE (Adaptive Server Enterprise), originally known as Sybase SQL Server, and also commonly known as Sybase DB or Sybase ASE, is a relational model database server developed by Sybase Corporation, which later became part of SAP AG. ASE was ...
relational database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
engine in 1984, and later by
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
in
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
.


History

During the early development of Sybase SQL Server, the developers at Sybase perceived the lack of a commonly accepted application level protocol to transfer data between a
database server A database server is a server which uses a database application that provides database services to other computer programs or to computers, as defined by the client–server model. Database management systems (DBMSs) frequently provide database- ...
and its
client Client(s) or The Client may refer to: * Client (business) * Client (computing), hardware or software that accesses a remote service on another computer * Customer or client, a recipient of goods or services in return for monetary or other valuable ...
. In order to encourage the use of its products, Sybase promoted the use of a flexible pair of
libraries A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
, called netlib and db-lib, to implement standard SQL. A further library was included in order to implement "Bulk Copy" called blk. While netlib's job is to ferry data between the two computers through the underlying
network protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
, db-lib provides an API to the client program, and communicates with the server via netlib. db-lib sends to the server a structured stream of bytes meant for tables of data, hence a Tabular Data Stream. blk provides, like db-lib, an API to the client programs and communicates with the server via netlib. In 1990 Sybase entered into a technology-sharing agreement with
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
which resulted in Microsoft marketing its own SQL Server —
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
— based on Sybase's code. Microsoft kept the db-lib API and added
ODBC In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
. (Microsoft has since added additional APIs.) At about the same time, Sybase introduced a more powerful successor to db-lib, called ct-lib, and called the pair
Open Client Open or OPEN may refer to: Music * Open (band), Australian pop/rock band * The Open (band), English indie rock band * Open (Blues Image album), ''Open'' (Blues Image album), 1969 * Open (Gotthard album), ''Open'' (Gotthard album), 1999 * Open (C ...
. db-lib, though officially deprecated, remains in widespread use. The TDS protocol comes in several varieties, most of which had not been openly documented because they were regarded as proprietary technology. The exception was TDS 5.0, used exclusively by Sybase, for which documentation is available from Sybase. This situation changed when Microsoft published the TDS specification in 2008, as part of the
Open Specification Promise The Microsoft Open Specification Promise (or OSP) is a promise by Microsoft, published in September 2006, to not assert its patents, in certain conditions, against implementations of a certain list of specifications. The OSP is not a licence, but r ...
. The
FreeTDS FreeTDS is a free software programming library, a re-implementation of the Tabular Data Stream protocol. It can be used in place of Sybase's db-lib or ct-lib libraries. It also includes an ODBC library. It allows many open source applications such a ...
team has developed a free native-library implementation of the TDS protocol, licensed under the
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
license.
WireShark Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, the project was renamed Wireshark in May 2006 d ...
has a protocol decoder for TDS.
Oracle Corporation Oracle Corporation is an American multinational computer technology corporation headquartered in Austin, Texas. In 2020, Oracle was the third-largest software company in the world by revenue and market capitalization. The company sells da ...
provides
Oracle Net In the field of database computing, Oracle Net Services consists of sets of software which enable client applications to establish and maintain network sessions with Oracle Database servers. Since Oracle databases operate in and across a variety o ...
- software analogous to TDS.


See also

*
Transact-SQL Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to the SQL (Structured Query Language) used to interact with relational databases. T-SQL expands on the SQL standard to include procedural programming, local variables, vario ...


References

{{reflist


External links


Microsoft Developer Network
Tabular Data Stream Protocol Specification

sybase.com
FreeTDS

TinyTDS
Ruby bindings to FreeTDS.
jTDS
a pure-Java
JDBC Java Database Connectivity (JDBC) is an application programming interface (API) for the programming language Java, which defines how a client may access a database. It is a Java-based data access technology used for Java database connectivity. I ...
driver for TDS databases
jBCP
an extension of jTDS to include BCP protocols

Microsoft
Patent: TRANSPORTING TABLE VALUED PARAMETER OVER TABULAR DATA STREAM PROTOCOL
Microsoft
Patent application: COMPRESSING NULL COLUMNS IN ROWS OF THE TABULAR DATA STREAM PROTOCOL
Microsoft
WireShark wiki: Protocol tds
Application layer protocols Database access protocols